모의해킹
호스트기반모의해킹_16_NFS 취약점 진단
작성자 : Heehyeon Yoo|2025-11-26
# 모의해킹# NFS# 권한 상승# Misconfiguration# no_root_squash
1. 개요
NFS(Network File System)는 리눅스/유닉스 환경에서 파일 및 디렉토리를 네트워크로 공유하는 프로토콜이다.
- 포트: TCP/UDP 2049 (NFS 데몬), TCP/UDP 111 (Portmapper/RPCBind).
- 특징: IP 주소 기반의 접근 제어(ACL)를 사용하며, 별도의 사용자 인증 과정이 없는 경우가 많다.
2. 주요 진단 항목
2.1 접근 제어 및 공유 목록 확인(Export List)
- 목적: NFS 서버가 외부에 노출하고 있는 디렉토리와 접근 가능한 IP 대역을 확인한다.
- 도구:
showmountshowmount -e [Target_IP]- 결과 예시:
/home/user *(모든 IP 접근 가능 - 취약)
- 결과 예시:
2.2 디렉토리 마운트 및 파일 접근
- 방법: 공격자의 로컬 시스템에 NFS 공유를 마운트하여 파일을 열람하거나 변조한다.
mkdir /tmp/nfs_test mount -t nfs [Target_IP]:/home/user /tmp/nfs_test
2.3 no_root_squash 취약점
- 개념: NFS 서버 설정에서
no_root_squash옵션이 활성화된 경우 발생한다.- 원리: 클라이언트(공격자) 측에서
root권한으로 파일을 생성하면, 서버 측에서도 해당 파일의 소유자가root로 유지된다.
- 원리: 클라이언트(공격자) 측에서
- 위협:
- 공격자는 로컬에서
root권한으로 SUID 비트가 설정된 쉘(Shell) 파일(예:/bin/bash복사본)을 공유 폴더에 생성한다. - 서버 측에서 로컬 사용자가 이 파일을 실행하면 Root 권한 상승(Privilege Escalation)이 일어난다.
- 공격자는 로컬에서
3. 실무에서는?
- RPCBind 포트(111):
- NFS 뿐만 아니라 다양한 RPC 서비스 정보를 제공하므로,
rpcinfo -p [Target_IP]를 통해 연관된 서비스를 넓게 파악해야 한다.
- NFS 뿐만 아니라 다양한 RPC 서비스 정보를 제공하므로,
- IP 기반 인증의 한계:
/etc/exports설정에서*나192.168.1.0/24같은 넓은 대역을 허용하는 실수가 잦다. 사설망 내부라 해도 엄격한 IP 통제가 필요함을 강조해야 한다.
- SSH 키 탈취:
- 가장 흔한 시나리오는
/home디렉토리를 통째로 공유하여, 사용자 계정의.ssh/id_rsa(개인키)를 탈취하고 SSH로 바로 접속하는 것이다.
- 가장 흔한 시나리오는